ARDUINO OVLÁDÁNÍ VÍCE 74HC595 TABLETEM

Vágner Vlastimil

    Potřeboval jsem v jednom projektu pro kamaráda ovládat výstupy čtyř posuvných registrů 74HC595, tak aby byla možná volba změny hodnot sepnutých výstupů pouze v požadovaném (zvoleném) posuvném registru. A současně aby zapsané hodnoty v dalších posuvných registrech zůstali beze změny, na ovládání posuvných registrů jsem zvolil ARDUINO NANO, bezdrátová komunikace s hotovým přípravkem je v případě potřeby řešena komunikačním modulem bluetooth JDY-33 který komunikuje s tabletem (chytrým telefonem) kde se zadávají hodnoty pro aktivaci výstupů posuvných registrů. Pro testovaní napsaného zkušebního programu pro posuvné registry jejichž výstupy spínali led diody, jsem zvolil zadávání hodnot sériovým terminálem z počítače a poté i sériovým terminálem pro Android z tabletu, v tomto případě testování bylo zapojení posuvných registrů s led diodami realizováno na kontaktním poli. Napsaný program umožňuje ovládat až sedm posuvných registrů 74HC595 (odzkoušeno), při ovládání uvedeného počtu posuvných registrů jsou využity všechny datové piny Arduino Nano. Program  může posloužit pro inspiraci při psaní podobných programů pro ovládání posuvných registrů.

 

POPIS PŘÍPRAVKU

    Přípravek jde pouze o univerzální vrtanou destičku kde jsou osazeny patice pro posuvné registry z důvodu snadné výměny uvedených IO, propojení na univerzální vrtané destičce dle schématu jsou provedena pomocí drátků. Stejně tak je provedeno i zapojení napájecího zdroje pro posuvné registry 74HC595 který je tvořen v tomto případě stabilizátorem 7805S jehož vstupní část i výstupní část je blokována keramickými kondenzátory 100NF, pro Arduino Nano je použita svorkovnice na DPS tovární výroby zakoupená v [1], napájecí zdroj 7 – 9VDC který napájí jak Arduino Nano tak i posuvné registry je použit tovární výroby. Při komunikaci tabletem s bluetooth je tento napájen z desky Arduino Nano, při komunikaci s počítačem je použit sériový převodník CH340 – TTL. Zapojení přípravku je na obrázcích č.01, č.02 a č.03 na obrázku č.01 je schéma zapojení přípravku pro ovládání z tabletu (chytrého telefonu) pomocí sériového terminálu pro Android. Na obrázku č.02 je shodné zapojení pouze je nakresleno připojení sériového převodníku CH340 – TTL, na obrázku č.03 je nakresleno zapojení výstupů posuvných registrů s použitými ochrannými rezistory které mohou být použity i při ovládání nízko příkonových led diod v případě ovládání led diod nesmí být překročen maximální výstupní proud posuvného registru. V tomto případě výstupy posuvných registrů ovládají řídící vstupy (GATE) spínacích tranzistorů Mosfet osazené již na DPS zakoupených také v [1], tyto pak spínají cívky (tzv. kostky) které ovládají vzduchové písty. Schéma konečného zapojení není součástí tohoto popisu, a není součástí ani konečná verze programu zde je uvedena pouze verze pro ovládání dvou posuvných registrů, tuto je možno si v případě zájmu jakkoliv upravovat.

 

POPIS OVLÁDÁNÍ POSUVNÝCH REGISTRŮ

    Ovládání posuvných registrů je programem běžně prováděno tak že se data postupně zapisují do použitých registrů a tak první zapsaná hodnota je zobrazena v posledním použitém registru. Zde jsem zvolil jiné zapojení a to tak že výstup Arduina pro zápis sériových dat (zadávaná hodnota) je současně přivedena na všechny sériové vstupy posuvných registrů na PIN14 to znamenná že jsou tyto PINY propojeny. Stejně tak jsou společně propojeny všechny PINY signálu CLK PIN11 u všech použitých posuvných registrů, pouze vstupy pro povolení zápisu dat a potvrzení zapsaných dat že jsou platná signálem logické jedničky na PINU12 jsou vždy každý z tohoto pinu posuvného registru zapojen samostatně na datový PIN Arduina. Další piny které jsou propojeny na všech posuvných registrech jsou PINY13 a spojeny přes rezistor 15K s kladným pólem napájení z toho důvodu aby při zapnutí napájení byli všechny výstupní PINY na použitých posuvných registrech QA – QH v logické nule a programově jsou všechny PINY13 spojeny s minusovým pólem napájení pomocí tranzistoru BC337 který je sepnut jedním datovým výstupem Arduina, pokud je PIN13 v logické jedničce není možné provést ani zápis dat. Poslední PIN na posuvných registrech PIN10 je na všech použitých posuvných registrech spojen trvale s kladným napájecím napětím. Zadávání číselných hodnot pro aktivaci výstupů je takto : výstupu QA odpovídá hodnota 1, výstupu QB odpovídá hodnota 2, výstupu QC odpovídá hodnota 4, výstupu QD odpovídá hodnota 8, výstupu QE odpovídá hodnota 16, výstupu QF odpovídá hodnota 32, výstupu QG odpovídá hodnota 64, výstupu QH odpovídá hodnota 128. „ SÉRIOVÝ VÝSTUP Q’H NENÍ VYUŽIT “. Je možná jakákoliv číselná kombinace zadávaných čísel v uvedeném rozsahu „ 1 – 128 „ tak jak je potřeba součet všech čísel je 255, pokud zadáme hodnotu 255 rozsvítí se všechny led diody na zkušební desce, pokud zadáme hodnotu 129 rozsvítí se led dioda na výstupu QA a QH 1 + 128 = 129. Pokud chceme všechny sepnuté výstupy posuvných registrů vypnout za poslední hodnotu zapíšeme 500, 1,255,2,128 pokud chceme výstupy vypnout tak za poslední číslo 128 zapíšeme 500. 1,255,2,128,500 a odešleme ze sériového terminálu do Arduina. Aktivní Výstupy se vypnou. Pokud jsme po odeslání hodnot do posuvných registrů v sériovém terminálu zadané hodnoty smazali postupujeme tak že zadáme 1,0,2,0 nebo 1,0,2,0,500 a odešleme do Arduina. V případě že chceme pouze vypnout výstupy u jednoho posuvného registru tak u tohoto zadáme druhou hodnotu  0. Příklad máme sepnuty výstupy u prvního posuvného registru hodnota 1,64 a u druhého posuvného registru 2,32 a u tohoto druhého posuvného registru chceme výstupy vypnout u prvního posuvného registru hodnoty 1,64 ponecháme a u hodnot pro druhý posuvný registr přepíšeme hodnotu 32 na hodnotu 0 tak že zápis bude mít tvar 2,0 a odešleme do Arduina tímto se výstupy u druhého posuvného registru vypnou. A výstupy u prvního posuvného registru zůstávají zadané výstupy sepnuty.

 

ZADÁVÁNÍ HODNOT DO POSUVNÝCH REGISTRŮ

    Na tabletu nebo počítači zadáváme hodnoty v sériovém terminálu v pořadí, první číslo je číslo posuvného registru do kterého budeme zapisovat hodnotu, druhé číslo je již hodnota která bude reprezentovat sepnutý výstup posuvného registru. Třetí hodnota se zadává POUZE POKUD CHCEME PROVÉST VYPNUTÍ VŠECH VÝSTUPŮ POSUVNÝCH REGISTRŮ tato hodnota je 500.

 

PROGRAMY

    Programy pro ovládání posuvných registrů jsou dva uložesny jsou v adresáři programy jeden program je pro počítač a má název ARDUINO.EXE je v podadresáři počítač kde je i knihovna nutná pro spuštění programu. Zde je i popis k programu program umožňuje ukládání hodnot do souboru pro pozdější použití uvedený program je možné používat pro sériovou komunikaci i s jinými přípravky které komunikují po sériové  lince RS232. Program jde použít i s redukcí USB/COM klasickou RS232 nebo s převodníkem CH340 – TTL. Program pro Arduino Nano j uložen v podadresáři ARDUINO a má název OVLÁDÁNÍ_74HC595.INO, program využívá jednu knihovnu pro sériovou komunikaci která umožňuje volbu jiných komunikačních PINŮ s názvem SoftwareSerial.h tato je součástí programovacího prostředí Arduino IDE. Program umožňuje přidat proměnné pro zadávání hodnot (sériová data), pro nadefinované další datové piny pro ovládání dalších vstupů posuvných registrů pro povolení a potvrzení zápisu PIN12. Program bez jakékoliv změny komunikačních PINŮ může být použit pro ovládání posuvných registrů buď z terminálu pro počítač nebo z terminálu pro tablet. V terminálu pro tablet po spuštění programu POUZE VYPNEME ZAKONČOVACÍ ZNAKY CR, CF.

 

    

 

           

     

                       

              

      

                   Spuštěný program terminál na PC s přijatou informací z Arduina

        

                    Zadané hodnoty v terminálu a odeslané do Arduino a zpět přijaté hodnoty

          

                     Znovu odeslané ty samé hodnoty s příkazem vypnutí výstupů a přijaté hodnoty

           

 

   Osazené posuvné registry v kontaktním poli s led diodami pro testování programu s převodníkem CH-340 s počítačem PC.

 

    Osazené posuvné registry s led diodami na kontaktním poli při testování programu detailní pohled           

    Použitý bluetooth modul JDY-32 připojrný k Arduino Nano

  Zapsání hodnot v terminálu pro tablet rozsvícení led diod na výstupech IO1 = QF = 32 a IO2 = QH = 128

            Sepnuté výstupy s led diodami po příkazu 1,32,2,128  IO1 = 32 = QF, IO2 = 128 = QH       

  Příkaz pro rozsvícení led diod na výstupech QF a QH doplněný příkazem 500 pro vypnutí těchto výstupů        

  Vypnutí rozsvícených led diod na pozicích IO1 = QF = 32 a IO2 = QH = 128 po odeslání příkazu 500 do Arduino Nano

     Zobrazení přijatých dat na LCD displeji tabletu

 

    použité prameny:

    dokumentace k posuvným registrům

    dokumentace k bluetooth modulu JDY-33

    [1] www.laskarduino.cz

   

     Bližší informace:

     vagnervlastimil@seznam.cz